package com.prd.component;

import com.prd.enums.LoginRegisterTypeEnum;
import com.prd.util.JsonData;
import com.prd.vo.LoginRegisterVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @Author lizhaoyi
 * @date 2023/11/18 15:45
 * Description:
 */
@Component
@Slf4j
public class LoginRegisterFactory {

    @Autowired
    private IDCartLoginRegisterStrategy idCartLoginRegisterStrategy;

    @Autowired
    private TelephoneLoginRegisterStrategy telephoneLoginRegisterStrategy;

    @Autowired
    private WeChatLoginRegisterStrategy wechatLoginRegisterStrategy;

    /**
     * 注册登录
     * @param loginRegisterVo
     * @return
     */
    public JsonData loginRegister(LoginRegisterVo loginRegisterVo){

        if (loginRegisterVo.getLoginRegisterType().equals(LoginRegisterTypeEnum.PHONE.getCode())) {
            //手机号登录
            LoginRegisterStrategyContext loginRegisterStrategyContext = new LoginRegisterStrategyContext(telephoneLoginRegisterStrategy);
            return loginRegisterStrategyContext.executeLoginRegister(loginRegisterVo);

        }else if (loginRegisterVo.getLoginRegisterType().equals(LoginRegisterTypeEnum.ID_CART.getCode())){
            //身份证登录
            LoginRegisterStrategyContext loginRegisterStrategyContext = new LoginRegisterStrategyContext(idCartLoginRegisterStrategy);
            return loginRegisterStrategyContext.executeLoginRegister(loginRegisterVo);

        }else {
            //微信登录
            LoginRegisterStrategyContext loginRegisterStrategyContext = new LoginRegisterStrategyContext(wechatLoginRegisterStrategy);
            return loginRegisterStrategyContext.executeLoginRegister(loginRegisterVo);
        }

    }


}
